/**
  * <br>JAVACC DEMO 1.0<br>
  * @copy right dwu company All rights reserved.<br>
  * <br>
  * @Package com.apache.api.manager
*/
package com.apache.api.manager;

import java.util.List;

import com.apache.api.vo.ParamsVo;
import com.apache.exception.BusinessException;

/**
  * description: 公共manager接口
  * @author Hou DaYu 创建时间：下午02:02:32
  */
public interface BaseManager<E> {

	/**
	 * 信息保存
	 * @param vo 方法参数
	 * @return 成功返回信息ID，失败返回空
	 */
	String saveInfo(ParamsVo<E> vo) throws BusinessException;

	/**
	 * 信息修改
	 * @param vo 方法参数
	 * @return 成功返回true，失败返回false
	 */
	boolean editInfo(ParamsVo<E> vo) throws BusinessException;

	/**
	 * 删除信息
	 * @param vo 方法参数
	 * @return 成功返回true，失败返回false
	 */
	boolean deleteInfo(ParamsVo<E> vo) throws BusinessException;

	/**
	 * 获取信息数据可执行方法
	 * @param vo 方法参数
	 * @return 返回要获取的信息数据
	 */
	Object execute(ParamsVo<E> vo);

	/**
	 * 按信息ID获取信息对象
	 * @param vo 方法参数
	 * @return 成功返回信息对象，失败返回空
	 */
	Object getInfoById(ParamsVo<E> vo);

	/**
	 * 根据条件获取信息列表
	 * @param vo 方法参数
	 * @return 成功返回信息列表，失败返回空
	 */
	List<E> getList(ParamsVo<E> vo);

	/**
	 * 根据条件获取信息数量
	 * @param vo 方法参数
	 * @return 返回信息数量
	 */
	long countInfo(ParamsVo<E> vo);

}
